////
//// Created by ASUS on 2022/1/11.
////
//
//#include<stdio.h>
//
//
//void bubble_sort(int *p, int n) {
//    int i, j;
//    for (i = 0; i < n - 1; i++) {
//        for (j = n - 1; j > i; j--) {
//            if (*(p + j) < *(p + j - 1)) {
//                int temp;
//                temp = *(p + j);
//                *(p + j) = *(p + j - 1);
//                *(p + j - 1) = temp;
//            }
//        }
//    }
//
//}
//
//void select_sort(int *p, int n) {
//    int i, j;
//    for (i = 0; i < n - 1; i++) {
//        int pos = i;
//        for (j = i + 1; j < n; j++) {
//            if (*(p + j) < *(p + pos)) {
//                pos = j;
//            }
//        }
//        if (pos != i) {
//            int tem;
//            tem = *(p + pos);
//            *(p + pos) = *(p + i);
//            *(p + i) = tem;
//        }
//    }
//}
//
//void out_data(int data[], int n) {
//    int i;
//    for (i = 0; i < n; i++) {
//        printf("%d\t", data[i]);
//    }
//    printf("\n");
//}
//
//
//void data_sort(int data[], int n,
//               void (*p)(int *, int), void(*out)(int *, int)) {
//    //通过函数指针调用不同派系算法函数
//    p(data, n);
//    //通过函数指针去调用输出函数
//    out(data, n);
//
//
//}
//
//int main() {
//
//    int data[] = {9, 10, 5, 7, 6, 8, 9};
//
//    int n = sizeof(data) / 4;
//    void (*g)(int *, int);
//    g = &bubble_sort;
//    data_sort(data, n, g, out_data);
//
//
//    int data1[] = {2, 8, 4, 6, 0};
//    n = sizeof(data1) / 4;
//    void (*m)(int *, int);
//    m = &bubble_sort;
//    data_sort(data1, n, m, out_data);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
////
////    int a = 10;
////    //定义一个p指针指向a,指针就是一个地址
////    int *p = &a;
////
////    printf("the pointer is :%d\n", *p);
////
////    char ch = 'c';
////    char *p1 = &ch;
////    *p1 = 'A';
////
////    printf("the pointer1 is:%c", *p1);
//
////    int a[] = {1, 2, 3, 4, 5, 7};
////    int *p = a;
//
////    printf("*p is :%d\n", ++*p);
////    ++p;
////    printf("*p is :%d\n", *p);
////    p++;
////    printf("*p is :%d\n", *p);
////    --p;
////    printf("*p is :%d\n", *p);
////    p = p + 4;
////    printf("*p is :%d\n", *p);
////    int **s = &p;
////    printf("%d\n",**s);
////    for (; p < a +6 ; p++) {
////        printf("%d\t",*p);
////    }
//
////    int c = 100;
////    int b = 200;
////
////    int * const g = &c;
////    printf("%d\n", *g);
////    int **mm = &g;
////    *mm = &b;
//////    *g = 12;
////    printf("%d", *g);
//
//
//}
